TestNG একটি জনপ্রিয় টেস্ট ফ্রেমওয়ার্ক যা Java এ পরীক্ষার কার্যক্রম পরিচালনা করতে সাহায্য করে। এই ফ্রেমওয়ার্কের মধ্যে বিভিন্ন ইন্টারফেস রয়েছে যা টেস্ট রিপোর্টিং এবং টেস্টের কার্যক্রম মনিটর করতে ব্যবহৃত হয়। এর মধ্যে দুটি গুরুত্বপূর্ণ ইন্টারফেস হলো IReporter এবং ITestListener। এগুলি ব্যবহার করে আপনি টেস্ট রান সময়ের বিভিন্ন স্টেট নিয়ে তথ্য সংগ্রহ করতে এবং কাস্টম রিপোর্ট তৈরি করতে পারবেন।
ITestListener Interface
ITestListener কী?
ITestListener একটি ইন্টারফেস যা TestNG এর টেস্ট রানের বিভিন্ন স্টেজে ইভেন্ট হ্যান্ডলিং করতে ব্যবহৃত হয়। এই ইন্টারফেসটি টেস্টের শুরু, সফল বা ব্যর্থ হওয়ার সময়, অথবা টেস্টের পরবর্তী ধাপে যাওয়ার সময় বিভিন্ন ইভেন্ট ট্র্যাক করতে সাহায্য করে।
ITestListener এর মেথডসমূহ
ITestListener ইন্টারফেসটি কিছু বিশেষ মেথড প্রদান করে যা টেস্ট রান ইভেন্টগুলো ট্র্যাক করতে ব্যবহৃত হয়। এই মেথডগুলি হলো:
- onTestStart(ITestResult result) : যখন কোন টেস্ট শুরু হয়, এই মেথডটি কল হয়।
- onTestSuccess(ITestResult result) : যদি টেস্ট সফলভাবে সম্পন্ন হয়, এই মেথডটি কল হয়।
- onTestFailure(ITestResult result) : যদি টেস্ট ব্যর্থ হয়, এই মেথডটি কল হয়।
- onTestSkipped(ITestResult result) : যদি টেস্ট স্কিপ হয়, এই মেথডটি কল হয়।
- onTestFailedButWithinSuccessPercentage(ITestResult result) : যদি টেস্ট কিছু সাফল্যের শতকরা হার দিয়ে ব্যর্থ হয়।
- onStart(ITestContext context) : টেস্ট স্যুটের শুরুতে এই মেথডটি কল হয়।
- onFinish(ITestContext context) : টেস্ট স্যুটের শেষে এই মেথডটি কল হয়।
ITestListener ব্যবহার
import org.testng.ITestListener;
import org.testng.ITestResult;
public class MyTestListener implements ITestListener {
@Override
public void onTestStart(ITestResult result) {
System.out.println(result.getName() + " টেস্ট শুরু হয়েছে।");
}
@Override
public void onTestSuccess(ITestResult result) {
System.out.println(result.getName() + " টেস্ট সফলভাবে সম্পন্ন হয়েছে।");
}
@Override
public void onTestFailure(ITestResult result) {
System.out.println(result.getName() + " টেস্ট ব্যর্থ হয়েছে।");
}
@Override
public void onTestSkipped(ITestResult result) {
System.out.println(result.getName() + " টেস্ট স্কিপ হয়েছে।");
}
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// Optional Implementation
}
@Override
public void onStart(ITestContext context) {
System.out.println("টেস্ট স্যুট শুরু হয়েছে।");
}
@Override
public void onFinish(ITestContext context) {
System.out.println("টেস্ট স্যুট শেষ হয়েছে।");
}
}
IReporter Interface
IReporter কী?
IReporter একটি ইন্টারফেস যা কাস্টম রিপোর্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি TestNG এর টেস্ট রান শেষ হওয়ার পর রিপোর্ট জেনারেট করতে সাহায্য করে। IReporter ইন্টারফেসটি টেস্টের ফলাফল সম্পর্কে বিস্তারিত তথ্য সংগ্রহ করে এবং ব্যবহারকারীর চাহিদা অনুযায়ী রিপোর্ট তৈরি করতে সক্ষম।
IReporter এর মেথডসমূহ
IReporter ইন্টারফেসটি প্রধানত একটি মেথড প্রদান করে:
- generateReport(List xmlSuites, List suites, String outputDirectory) : এই মেথডটি রিপোর্ট তৈরি করতে ব্যবহৃত হয় এবং টেস্টের ফলাফলসমূহ যেমন XML, HTML বা অন্যান্য ফরম্যাটে আউটপুট দিতে পারে।
IReporter ব্যবহার
import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.XmlSuite;
import java.util.List;
public class MyCustomReporter implements IReporter {
@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
// রিপোর্ট জেনারেট করার লজিক এখানে থাকবে
System.out.println("কাস্টম রিপোর্ট জেনারেট হচ্ছে...");
}
}
IReporter এবং ITestListener এর পার্থক্য
- ITestListener মূলত টেস্টের কার্যক্রমের সময় বিভিন্ন ইভেন্ট ট্র্যাক করার জন্য ব্যবহৃত হয়, যেমন টেস্ট শুরু, সফল বা ব্যর্থ হওয়া, ইত্যাদি।
- IReporter কাস্টম রিপোর্ট তৈরি করার জন্য ব্যবহৃত হয় যা TestNG টেস্টের শেষে ফলাফল নির্ধারণ করে।
এই ইন্টারফেসগুলো ব্যবহার করে আপনি TestNG টেস্ট রানকে আরও বিস্তারিতভাবে ট্র্যাক করতে এবং কাস্টম রিপোর্ট তৈরি করতে সক্ষম হবেন।
Read more